Converting text strings into number strings, such as via a touchscreen input

ABSTRACT

System and methods are provided for detecting numerical text strings within a text string and converting those numerical text strings into digit strings. The digit strings may be reflected in real-time, such as when the user is typing a text message. If more than one possible format of the digit string is determined, the system may then provide a selection of the various formats for selection. Once the proper format for the digit string is determined, that digit string may replace the numerical string previously detected in the text string. The text to digit conversion and associated formatting expedites user text entry such that the user is not required to switch keyboard views, (e.g., virtual keyboards). Additionally, converting to digit strings compresses message length, as well as provide other benefits.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. Non-Provisional applicationSer. No. 14/495,741, Converting Text Strings Into Number Strings, SuchAs Via A Touchscreen Input, filed Sep. 24, 2014, which is herebyincorporated by reference in its entirety.

BACKGROUND

In today's digital world, electronic communication is fast becoming thego-to method. Though users have cellular telephones, short messageservice (SMS), or text messaging is more commonly used. Users canquickly communicate with others and keep a log of the communication.With the emergence of smartphones, tablets, hybrid devices (e.g., minitablets), and other mobile devices—with the integration of touchinterface technology onto computers—users are capable of providinginputs to those computing device through an additional input element:touchscreens. Touchscreen displays are now an industry standard oncellular telephones, tablets, laptops and even some desktop computers.

A touchscreen allows users to combine the functions of varioustraditional input elements, e.g., a traditional mouse and keyboard, intoone. In order provide this functionality, the touchscreen often displaysa virtual keyboard to users when keyed entries are required. Thedisplayed keyboard is generated either automatically by an applicationor at the user's request. Because of the size of the device on whichthey are incorporated, displayed virtual keyboards often include inputkeys that are a fraction of the size of keys on traditional keyboards.

So, in order to provide the same functionality of a keyboard, numerouskeyboard views are needed. The user can simply press a button on eachkeyboard view to display an alternate view. Most common virtualkeyboards include numbers and symbols on alternate views, incorporatingonly the most commonly used symbols, e.g., period, question mark, etc.,on the primary keyboard view. However, as devices decrease in size itbecomes increasingly difficult for users to properly and quickly inputtext on the correspondingly smaller keyboards. In order to enter text auser views one keyboard and in order to enter numbers and symbols a usermust switch to another keyboard view. Likewise, in keypad based mobiledevices, users are required to press and hold or complete numerouspresses to get to a particular number or symbol. Such a process is timeconsuming, which contradicts the common goal of most users composing thetext message or email: to communicate as rapidly and efficiently aspossible.

Therefore, the need exists for a system that overcomes the aboveproblems, as well as one that provides additional benefits. Overall, theexamples herein of some prior or related systems and their associatedlimitations are intended to be illustrative and not exclusive. Otherlimitations of existing or prior systems will become apparent to thoseof skill in the art upon reading the following Detailed Description.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example of a computing network in which someembodiments of the present invention may be implemented.

FIG. 2 is a block diagram of example components in a mobile device orsuitable computing device capable of providing a virtual keyboard on atouchscreen display.

FIG. 3 is a flow diagram illustrating a method for formatting numericaltext entry on a keyboard of a mobile device.

FIG. 4 illustrates a text input on a virtual keyboard displayed on atouchscreen of a mobile device.

FIG. 5 illustrates a foreign language text input on a virtual keyboarddisplayed on a touchscreen of a mobile device.

DETAILED DESCRIPTION

A system and methods are provided for formatting digit strings fromtext. Specifically, the present system and methods allow for receivingnumerical text strings and converting that text into formatted digitstrings. The system and methods may be implemented on a mobile device,such as a device where text messaging (e.g., SMS) is commonly utilized.For purposes of this description, a digit string is any string in whicha number is represented in a digit format, including punctuation, suchas colons, semi-colons, periods, dollar signs (or other monetaryidentifiers), dashes, slashes, etc. Text strings may include any words,or other text input including numerical words which may be entered by auser on an input device coupled to a computing device.

The methods implemented by the system include analyzing a text stringfor numerical word strings, or number words, and properly formatting thenumber words into digit strings. (The terms “numerical word”, “numericalword string,” “number word,” “numerical text” and the like are generallyused interchangeably herein.) As discussed in the following embodiments,the methods may be implemented in a digit formatting application, whichmay include various stand-alone or sub-processes for performing specifictasks. For example, to analyze the text string, the system may implementone or more methods using string searching or matching, and one or morestring functions to modify the text string once a numerical word stringis detected. Once the system determines that a textual word entrycontains a numerical word, that text string may further be searched (orparsed) for additional numerical words and/or keywords which indicate aparticular format in which the numerical words is to be converted (e.g.into a digit string formatted as a phone number in the form “(xxx)yyy-zzzz”).

Accordingly, to properly format the digit strings, the system alsoanalyzes the text string in which the number words are detected based ona set of criteria. For example, one criteria includes the language andcorresponding country in which the text string is entered. A secondcriteria is evaluating the context (if any) in which the numericalstring is used. To evaluate the context, the system may determine if anykeywords or phrases are utilized in the string adjacent to near thenumber word. For example, if the user enters “an account balance of . .. ” or “my number is . . . ” then the system can determine the type offormatting for the detected numerical string. The context evaluation canbe implemented in methods including one or more rules, e.g., “if, then”statements.

Numerous formatting types may be included, based on language andassociated country, for converting the numerical word string into adigit string. For example, if not based on context, the numerical wordstring may be offered in the most commonly used formats, such asmonetary, time, dates, etc. However, given a particular context, thedigit string may be predictively and correctively formatted.

Various implementations of the invention will now be described. Thefollowing description provides specific details for a thoroughunderstanding and an enabling description of these implementations. Oneskilled in the art will understand, however, that the invention may bepracticed without many of these details. Additionally, some well-knownstructures or functions may not be shown or described in detail, so asto avoid unnecessarily obscuring the relevant description of the variousimplementations. The terminology used in the description presented belowis intended to be interpreted in its broadest reasonable manner, eventhough it is being used in conjunction with a detailed description ofcertain specific implementations of the invention.

Without limiting the scope of this detailed description, examples ofsystems, apparatus, methods and their related results according to theembodiments of the present disclosure are given below. Unless otherwisedefined, all technical and scientific terms used herein have the samemeaning as commonly understood by one of ordinary skill in the art towhich this disclosure pertains. In the case of conflict, the presentdocument, including definitions will control. The terms used in thisdetailed description generally have their ordinary meanings in the art,within the context of the disclosure, and in the specific context whereeach term is used. For convenience, certain terms may be highlighted,for example using italics and/or quotation marks. The use ofhighlighting has no influence on the scope and meaning of a term; thescope and meaning of a term is the same, in the same context, whether ornot it is highlighted. It will be appreciated that same thing can besaid in more than one way.

Consequently, alternative language and synonyms may be used for any oneor more of the terms discussed herein, nor is any special significanceto be placed upon whether or not a term is elaborated or discussedherein. Synonyms for certain terms are provided. A recital of one ormore synonyms does not exclude the use of other synonyms. The use ofexamples anywhere in this specification including examples of any termsdiscussed herein is illustrative only, and is not intended to furtherlimit the scope and meaning of the disclosure or of any exemplifiedterm. Likewise, the disclosure is not limited to various embodimentsgiven in this specification.

Reference in this specification to “one embodiment” or “an embodiment”means that a particular feature, structure, or characteristic describedin connection with the embodiment is included in at least one embodimentof the disclosure. The appearances of the phrase “in one embodiment” invarious places in the specification are not necessarily all referring tothe same embodiment, nor are separate or alternative embodimentsmutually exclusive of other embodiments. Moreover, various features aredescribed which may be exhibited by some embodiments and not by others.Similarly, various requirements are described which may be requirementfor some embodiments but not for other embodiments.

I. Systems

The discussion herein provides a brief, general description of asuitable computing environment in which aspects of the present inventionmay be implemented. Although not required, aspects of the system aredescribed in the general context of computer-executable instructions,such as routines executed by a general-purpose computer, e.g., mobiledevice such as a smartphone, tablet, notebook or laptop computer, aserver computer, or personal computer. Those skilled in the relevant artwill appreciate that the system may be practiced with othercommunications, data processing, or computer system configurations,including: Internet appliances, hand-held devices (including personaldigital assistants (PDAs)), all manner of cellular or mobile phones,wearable computers, embedded systems, vehicle-based computers,multi-processor systems, microprocessor-based or programmable consumerelectronics, set-top boxes, network PCs, mini-computers, mainframecomputers, and the like. Indeed, the terms “computer,” and “mobiledevice” are generally used interchangeably herein, and refer to any ofthe above devices and systems, as well as any data processor.

Aspects of the system may be embodied in a special purpose computingdevice or data processor that is specifically programmed, configured, orconstructed to perform one or more of the computer-executableinstructions explained in detail herein. Aspects of the system may alsobe practiced in distributed computing environments where tasks ormodules are performed by remote processing devices, which are linkedthrough a communications network, such as a Local Area Network (LAN),Wide Area Network (WAN), or the Internet. In a distributed computingenvironment, program modules may be located in both local and remotememory storage devices.

Aspects of the system may be stored or distributed on computer-readablemedia, including magnetically or optically readable computer discs,hard-wired or preprogrammed chips (e.g., EEPROM or flash semiconductorchips), nanotechnology memory, biological memory, or other data storagemedia. Alternatively, computer implemented instructions, datastructures, screen displays, and other data under aspects of the systemmay be distributed over the Internet or over other networks (includingwireless networks). Those skilled in the relevant art will recognizethat portions of the system may reside on a server computer, whilecorresponding portions reside on a client computer such as a mobile orportable device, and thus, while certain hardware platforms aredescribed herein, aspects of the system are equally applicable to nodeson a network. Aspects of the invention will now be described withreference to the figures.

System Environment

A suitable or representative environment 100 in which the invention maybe implemented is provided with reference to FIG. 1. FIG. 1 includes oneor more communication networks 150 coupled to various devices capable ofstoring and running applications as well as communicating on thenetworks 150. For example, the devices may include a laptop/ultrabookcomputer 110, a mobile phone 120, a tablet computer 130, a GPSnavigation system 140, or other computing or data processing device. Thedevices 110, 120, 130, 140, can include various input mechanisms (e.g.,microphones, keypads/keyboards, and/or touchscreens) to receive userinputs (e.g., voice, text, and/or handwriting inputs). In particular,devices with touchscreens include a virtual keyboard application storedon or accessible via the devices to allow users to enter text by typingor entering text via a virtual keyboard. Devices with traditional twelvekey (e.g., 3×4 keypads) may include a T9 predictive text application ora traditional multi-tap (e.g. long press) application stored on oraccessible via the devices for text entry. The devices may additionallyinclude an application stored on or accessible by the devices whichreceives and analyzes text entry on the virtual keyboard and convertsnumerical text into formatted digit strings.

An application server 160 configured to provide virtual keyboardsoftware and/or digit formatting application software and updates forthat software to each of the devices is also illustrated. The virtualkeyboard and/or digit formatting software may be stored in anapplication database 170 coupled to the application server 160. Theapplication server 160 may be coupled to the networks 150 via a wirelessor hard-wired connection, such as the Ethernet, IEEE 802.11, or othercommunication channel known in the art which is formed between theserver and the network. Additional details of a mobile device, digitformatting application and corresponding methods are further describedwith reference to the remaining figures.

Mobile Device

FIG. 2 illustrates an example of a mobile device having a touchscreenused to implement the methods for formatting digit strings from textstrings as provided in the following description. In particular, FIG. 2illustrates components of a mobile computing device 210 through whichtext entries may be received from a user. The mobile device 210 is acomputing device having a storage medium encoded with instructionscapable of being executed by a processor to perform methods disclosedherein based on those instructions. For example, the mobile device 210may be a smartphone, tablet computer, netbook, mobile GPS navigationdevice, e-reader, personal wireless device (e.g., mobile hotspot),wearable computer, or any other device which is capable of storing oneor more applications and generating a virtual keyboard on a touchscreendisplay of the mobile device 210 or otherwise receiving text entry onthe mobile device 210. While not depicted in FIG. 2, many of thecomponents in the mobile device 210 are also present in other suitablecomputing devices that implement the disclosed technology. For example,a surface or tabletop computer, desktop computer, server computer, wiredphone, or fixed telephone or communications console or apparatus may allhave the same or similar components to those depicted in the mobiledevice 210. Indeed, the present system may be applied to the so-calledInternet of things, and thus may be integrated with, e.g., homeappliances like refrigerators, washers, dryers, dishwasher, thermostats,home automation systems, home music systems, etc.

The mobile device 210 is configured to input and temporarily storetouchscreen or keypad contact events reflecting an interaction on orclosely adjacent to a virtual keyboard or numeric keypad on the mobiledevice 210. Each of the components within the mobile device 210 may beconnected, e.g. to a system bus (not shown) capable of transferring databetween those components. The mobile device 210 also has a power supply218, such as a battery, which is capable of providing power to each ofthe components within the mobile device 210.

The mobile device 210 also includes one or more antennas 212 capable ofcommunicating via radio networks with a cellular communications network(e.g., GSM, CDMA, 3G, 4G), a local wireless area network (WiFi), otherdevices using near field communication (NFC, RFID) or Bluetooth, and asatellite system (GPS). The antennas 212 may be coupled to a processor220, which facilitates the sending and receiving of communicationsignals to/from the aforementioned networks.

Various input components 216 for receiving input signals and variousoutput components 214 are also included in the mobile device 210. Forexample, the input components may include a touchscreen, keys orbuttons, accelerometers, cameras, and a microphone. The outputcomponents 214 may include, for example, a speaker and a display. Eachof the input components 216 and output components 214 are coupled to aprocessor 220, which is capable of executing certain functions of themobile device 210 such as, receiving data from the input components 216,sending data to the output components 214, and storing and retrievingdata from the memory elements 222 on the mobile device 210.

The touchscreen, keypad, or other input component 216 provides one ormore inputs to the processor 220 such as notifying the processor 220 ofinputs, e.g., contact events when the touchscreen is touched or keypadpresses on the numerical keypad. The touchscreen may include orcommunicate with a hardware controller, such as a touchscreen driver,that interprets raw signals received from the touchscreen and transmitsinformation associated with the contact event to the processor 220. Thecontact event may be generated from, e.g., a finger or stylus touch on atouchscreen which indicates a request by a user to press a virtual keyon the virtual keyboard displayed on the device 210. The datacharacterizing the contact event may include information on the currentposition of a pointing input device, a surface area (size and/or shape)of the contact points generated by the contact event, a pressure of thecontact event, a duration of the contact event, and a location of thecontact event (e.g., X-Y coordinates on the display screen of the deviceor a distance from a predetermined location on the display of thedevice). Numerous contact events or prolonged contact events (e.g.,continuous stroke input over a virtual keyboard) may be interpreted as atext entry.

The processor 220 may be a single processor or multiple specializedprocessors, such as a digital signal processor (DSP),application/graphics processor, or other types of processor, dependenton the additional components within the mobile device 210. The processor220 is coupled to one or more memory elements 222 which may include acombination of temporary and/or permanent storage, and both read-onlyand writable memory, such as static and non-static random access memory(S/RAM), read-only memory (ROM), writable non-volatile memory such asFLASH memory, hard drives, SIM-based components, and other computerreadable storage mediums. The processor 220 retrieves and stores data inmemory element(s) 222 of the device 210, and executes applications 226that are stored in the memory elements.

The memory element(s) 222 is/are encoded with various program componentsor modules, such as an operating system 224, various applications 226,such as those downloaded from an application store or database to themobile device 210. In particular, the memory elements 222 may include adigit formatting application module 228, or program, for formattingdigit strings from text strings received on a virtual keyboard andcorresponding program subroutines. Additionally, the memory element 222may include a virtual keyboard application module 234 for generating avirtual keyboard on the touchscreen of the mobile device 210. Thevirtual keyboard application module 234 may also be configured tocollect the contact event data on the virtual keyboard and interpret themultiple contacts as a text entry. The memory element 222 may alsoinclude a digit formatting module 228, which includes a text-to-digitstring conversion module 230 and a digit string predication module 232for predicting a format for the digit string based on the detection ofnumerical text in a text entry. A language model database 236 may alsobe included to provide a dictionary including a selection of predictivewords used by the text-to-string conversion module 230, where thedictionary may include words from more than one language. The languagemodel database 236 may be updated with additional words, languages andrules.

Though a virtual keyboard is referred to in the following description,it is understood that other forms of text entry, e.g., via a keyboard(Bluetooth or hard-wired), numerical keypad, or other text form entryknown within the art, are also considered within the scope of thisdescription. Furthermore, though a mobile device is references in thefollowing embodiments, it is understood that any computing devicecoupled to an input device capable of receiving a text string is alsoconsidered applicable to each embodiment discussed herein.

As discussed herein, the mobile device 210 may include or store a digitformatting application module 228 that detects numerical text in a textstring and converts that numerical text into a digit string via atext-to-digit string conversion module 230. The converted digit stringmay be in raw format, e.g., one or more numbers without punctuation orspacing. The unformatted digit strings may be sent to the digit stringprediction module 232 for formatting of the digits. The digits may bethen formatted based on various criteria.

A first criteria, for example, may include the context of the one ormore words immediately preceding or following the numerical word withinthe text string. In some embodiments, if the numerical text included inthe text string comprises all of that text string, the digit formattingapplication may additional analyze text strings received prior to theconverted digit string (e.g., in a previously received text message,such as one that says “What is your phone number?”).

Another criteria which may be considered includes the language of thetext entry received on the mobile device 210. For example, if aparticular language is detected, then particular modifiers and entrywords for formatting the digit strings will vary. The various modifiers(e.g., feminine, masculine, singular, or plural) of the entry or otherwords within the text be used to format the digit strings. For example,if the user types “Las primeras abogadas . . . ”, the system mayautomatically convert “primeras” to “1 as” (e.g., rather than 1o, 1a,1os). In some embodiments, the system may predict “1 as” once the userhas typed “Las prime_” based on the “Las” modifier. Additionally, thiscan occur vice versa so that, when a text string is entered, the systemmay use the various modifiers of the numerical words to determine properformats, rules (e.g. grammar rules), and spelling of additional words(e.g., adjectives) in the text string. So, using the aforementionedexample, if the user types “Las primeras aboga_(—) . . . ” the systemmay predict “abogadas” from the word “primeras”.

The various numerical formats considered may include, for example,specific formats for digits associates with times, dates, globalpositioning satellite coordinates, monetary amounts, phone numbers,addresses, measurements, quantities, and ordinal numbers, amongst othersnot listed but within the scope of the present description.

As previously mentioned, the digit formatting application module 228 maybe stored in a memory element 222 of the mobile device 210 and may beassociated with the virtual keyboard application module 234 such thateach time the virtual keyboard application module 234 is called, thedigit formatting application module 228 is also called. Accordingly,whenever the virtual keyboard is displayed on the device, the digitformatting application module 228 is executed to analyze text inputsfrom a user and predict a formatted digit string. It will be appreciatedthat the digit formatting application module 228 may also be integratedwith the virtual keyboard application module 234. Additionally, thetext-to-digit string conversion module 230 and/or the digit stringprediction module 232 may also, together or separately, be integratedwith the virtual keyboard application module 230 or be stand-aloneapplications.

The virtual keyboard application module 234 causes the device togenerate and display a virtual keyboard on a touchscreen input component216. The keyboard may be a virtual keyboard emulating a physicalkeyboard, such as a keyboard that is implemented on a touch-sensitivesurface, presented on a touch-sensitive display, imprinted on atouch-sensitive surface, and so on. Further details regarding suitabletext input applications may be found in commonly-assigned U.S. Pat. No.7,542,029, issued on Jun. 2, 2009, entitled SYSTEM AND METHOD FOR A USERINTERFACE FOR TEXT EDITING AND MENU SELECTION, which is incorporated byreference in its entirety. Further details regarding technologies thatmay be suitable for implementing in conjunction with the presentinvention may be found in commonly-assigned U.S. patent application Ser.No. 13/366,225, filed on Feb. 13, 2012, entitled CORRECTING TYPINGMISTAKES BASED ON PROBABILITIES OF INTENDED CONTACT FOR NON-CONTACTEDKEYS; commonly-assigned U.S. patent application Ser. No. 12/186,425,filed on Aug. 5, 2008, entitled A PROBABILITY-BASED APPROACH TORECOGNITION OF USER-ENTERED DATA, commonly assigned U.S. patentapplication Ser. No. 13/830,674, filed on Mar. 14, 2013, and entitledREDUCING ERROR RATES FOR TOUCH BASED KEYBOARDS, each of which areincorporated by reference in their entirely.

The virtual keyboard application module 234 may also include an eventdetection component (not shown) to detect when a user interaction hasoccurred on the mobile device that warrants the use of the virtualkeyboard. For example, if the user selects a text entry field in anelectronic mail (email) application or selects a form field on a websitepage, the event detection component detects the user input as an eventthat requires a keyboard for text entry. The events detected by theevent detection component then trigger the virtual keyboard applicationmodule 234 to present a virtual keyboard on a touchscreen display of themobile device 210.

The virtual keyboard application module 234 may be responsible forremoving the virtual keyboard from the display once the user hasfinished a session, i.e., finished a particular entry, as well aschanging the size, language and position of the keyboard dependent onthe user's preferences and physical position of the mobile device 210.The virtual keyboard application module 234 may also be configured todisplay various predictive words and formatted digit strings to a userduring and/or after received a text entry by that user (as explainedbelow).

The text-to-digit string conversion module 230 detects numerical wordswithin a text string and converts those words into digit strings. Thenumerical words may include any number, number combination, ordinalnumber, roman numeral, or other similar number. The text-to-digit stringconversion module may parse each word within the text string and matchthe word or words to a digit string. In some embodiment, as mentionedpreviously, the digit strings may originally be formatted withoutpunctuation and in a continuous string of digits. In other embodiments,in order to preserve some aspect of the digit formatting, thetext-to-string conversion module may include spacing between each digitcorresponding to each separate number word typed by the user. Forexample, if user types “seven fifteen”, then the text-to-stringconversion module 230 may convert this to “7 15” instead of “715” suchthat the digit to string prediction module may properly format the wordnumbers with punctuation between, e.g., the “7” and “1” rather than the“1” and “5” (or may provide both options, so the user may select one,but with “7 15” presented first).

The digit string prediction module 232 receives the outputs from thetext-to-digit string conversion module 230. In some embodiments, thedigit string conversion module 230 also receives one or more words ofthe text string within which the digit string is included. Inalternative embodiments, the entire text string, including the converteddigit string, is received by the digit to string prediction module 232.The digit string prediction module 232 uses the digit string identifiedby the text-to-string conversion module 230 to predict different formatsof digit strings which the user may be attempting to enter or attemptedto enter (e.g., after the entire text string is entered). The digitstring prediction may occur in real-time or near real-time such that theuser may select a format from one or more predictive formats displayedwhile the user is entering a text string (e.g., text message) on themobile device. The various possible formats of the digit string aredisplayed to the user in, e.g., a list, such that the user may theneasily select the desired format from the list. The digit formattingapplication may detect a numerical word entry while the user is typingand predict a format of the digit string prior to the user completingthe entry of one or all of the numerical words in that digit string. Forexample, if the user is typing “It's at s-e-v-e-n t-h-i-r . . . ” thedigit formatting application may predict “7:30 A, 7:30 P, 7:13 A, 7:13P” without the user having to enter the remaining letters in the word“t-h-i-r . . . .” In some embodiments, the user may continue typing theremaining letters in the numerical word, “t-h-i-r-t-y” and the digitformatting application may automatically complete the digit formattingfor the user to indicate “7:30” within that text string. Theaforementioned embodiment is further discussed in later sections withreference to FIG. 4.

The device 210 may include other components (not shown) that facilitateoperation of the device and its various components, including otherinput 216 or output 214 components, a radio and/or other communicationcomponents, a camera, a subscriber identity module (SIM), and so on. Ingeneral, the device 210 may store or contain any and all components,modules, or data files required or used in performing typingcorrections, such as by interpretation and word prediction for textinput applications provided by the device 210.

Methods for implementing the aforementioned application modules on adevice such as illustrated in FIG. 2 are now described. Reference toparticular components within that device may be indicated by a numericalidentifier corresponding to FIG. 2.

II. Methods

FIG. 3 is a flow diagram illustrating the use and implementation of thedigit formatting application module 228 (FIG. 2) on a mobile device. Inparticular, FIG. 3 is a flow chart depicting a method for formattingnumber words into digit strings from text strings entered on atouchscreen or virtual keyboard of mobile device. The method mayadditionally include predicting the digit strings in real-time duringuser entry. The digit strings may include recommended digit formatsbased on criteria such as, for example, the context in which the digitstring is received by a user. Additional criteria may also considered,for example, prior to beginning the method, the language in which theuser is typing may be detected. Each language and country of origin forthat language may also be considered while performing the step in themethod of FIG. 3. For example, Spanish in Mexico differs from Spanish inArgentina. Accordingly, certain words and/or phrases may also differ.

Beginning in step 302, text input, such as text strings, may be receivedvia a virtual keyboard generated for display on the touchscreen of themobile device. The text input may include multiple contact eventsdetected on the touchscreen of the mobile device. As previouslymentioned, contact events may be detected based on known touchscreentechniques, such as using a capacitive, resistive or optical wavetouchscreen technology. When multiple contact events are detected on thevirtual keyboard of device substantially simultaneously or within arelatively short predetermined time interval, the multiple detectedcontact events are processed by the virtual keyboard application moduleto determine one or more words comprising a text string. In someembodiments, one or more additional applications or modules may bestored in the memory of the mobile device and utilized to interpret thetext string from the multiple contact events detected on the virtualtouchscreen. In certain embodiments, the received contact events may beprocessed by a word prediction module (not shown) utilizing the languagemodel database to predict the words in the text string and correct anytypographical errors received during typing on the virtual keyboard. Forexample, they system may use existing predictive text input processes topredict that the input text strings “seben”, “sevrn”, aeven” and thelike all correspond to the word “seven”.

The virtual keyboard application may be provided by the operating systemof the device. The keyboard application may be always running, or “on”,in the background of the device and called to the foreground whenneeded. For example, an application executing on the mobile device maycall the virtual keyboard in order for a user to enter text to thatapplication. The virtual keyboard may be called automatically or by usercommand. As will be appreciated by one skilled in the art, the virtualkeyboard may vary in size relative to the display screen size of themobile device or relative to the size of the window in which thekeyboard is viewable by the user. Accordingly, the number of keysdisplayed on the virtual keyboard may vary and may require navigation toadditional views of the keyboard for selection of additional keys, suchas keys for numbers and punctuation.

In step 304, the text strings are parsed for numerical text or numberwords such as, “second” or “three”. These numerical text strings may beincluded in a language model database stored on or accessible by themobile device such that the user may quickly enter the number words viapredictive text entry. This type of language modeling may additionallyaccount for mistakes, e.g., typographical errors, made while the user isentering text, thus providing for more efficient digit input. The digitformatting application may preemptively display digit strings duringthis step and/or anytime during numerical text entry by the user.However, at this stage of the method, the digit strings may not beformatted properly as each digit may yet to be accounted for. This isespecially true if the context in which the numerical text strings areentered does not indicate a particular digit format.

In step 306, the digit formatting application determines if any textstrings were entered before or after the numerical text string. Byanalyzing the preceding and following text, the system may determine aparticular format for the series of digits corresponding to thenumerical text string. For example, the user may be entering a monetaryamount or a weight or other mathematical measurement, coordinates,account number, social security number, etc., and thus the user prefersthat the digit string be formatted accordingly.

In step 308, if the system identifies text strings preceding orfollowing the user's input numerical text string, the system analyzedthat preceding and/or following text to determine the context in whichthe numerical text string is utilized. For example, the system anydetect numerical text string modifiers, such as “at” or “dollars,” whichindicate a time or monetary amount as the context in which the numericaltext string was entered. This context may then indicate which formattingthe digit formatting application utilizes to format the digit string. Insome embodiments, if the system determines or infers that the userintends a particular format in which one or more words in the contextmay also be abbreviated and/or included in the digit string, the digitformatting application may also perform this conversion. For example,and as explained in the steps below, if the user enters “seven pounds”and the system determines the context to be associated with weight, thenthe digit formatting application may identify the “pounds” as digitformat for weight and convert the words “seven” and “pounds” to “7lbs.”, but in the context of money, convert that same text input into “

7”.

In step 310, the number words, as determined by the text-to-stringconversion module 230, are input into a digit string prediction module232 (or stand-alone application), which includes a sub-routine thatgenerates one or more predictive digits or digit string formats to bedisplayed to the user. The individual digits may be displayed to theuser during text entry while the formatted digit strings may bedisplayed as additional number words are detected in the text entry. Thepartial words, word pair, or long words may be compared with a languagemodel (e.g., an n-gram model with associated probabilities) such as thelanguage model database 236 in FIG. 2, that is stored in a memoryelement of the mobile device 210. The language model is used to processa received character string based on common use training data associatedwith the user of the device and/or the general population. The languagemodel may be a shortened version and the predicted number words,corresponding digit strings and the formatted digit strings within thatmodel may include words, number words, and digit string formats commonlyused both by the general population as well as specific to the user ofthe mobile device. For example, based on the population most closelyassociated with the user, the system may convert “bakers dozen” into“13”. Further, the system may employ cultural norms for prediction anddisambiguation, e.g. when the context infers a meeting time, and thesystem predicts both digit strings “7:13” and “7:30”, the system selects(or presents first) “7:30” since meetings on the half-hour are acultural norm in many locations. Indeed, the system may determine thelocation of the device to assist in determining context, and may thusdetermine cultural norms associated with the current location wheninferring a preferred format for the digit string.

In step 312, the digit formatting application determines if more thanone digit string format is determined by the digit string predictionmodule 234, and then in step 314 the application 228 determines apredicted digit format for the user. In some embodiments, there may beonly one possible digit string predicted, in which case that digitstring may be used to replace the number word(s) in the text string.Thus, where only one digit string format is predicted, the systemautomatically replaces the number word(s) in the text string with thedigit string.

However, using the previous example, if the user enters “It's ats-e-v-e-n t-h-i-r . . . ”, the digit formatting application may predictnumerous options for the user to select since it is unknown whether the“t-h-i-r . . . ” will be “30” or “13” or whether the time in thepredicted format is during the morning or at night. Thus, in step 314,the application determines a list of the possible digit formatvariations to be presented on the display of the mobile device for userselection. Still referring to the previous example, if the time of day(morning or night) or exact time are unknown while the user is enteringtext, the digit formatting application may generate each possiblevariation in a time format, e.g., “7:30 A, 7:30 P, 7:13 A, 7:13 P”. Butif the context includes words like “dinner”, then the system infers 7:13P, and thus provides the following list “7:30 P, 7:13 P, 7:30 A, 7:13A”. The user may then select which predicted time in the list to select.The user may select the proper digit string via touch on a touchscreenor via keypad entry. The system may then replace the number word(s)within the text string with the user-selected formatted digit string.The digit formatting application may then exit and/or continue ifadditional text entries are received. The application processes may alsoend each time the virtual keyboard is removed from the display of themobile device or each time that an application is closed in which thevirtual keyboard (and digit formatting application) is called.

The methods described with reference to FIG. 3 will now be describedwith reference to corresponding examples. In FIGS. 4-5, embodiments oftext entries on virtual keyboards and digit formatting of number wordsin those text entries are illustrated.

Depicted Embodiments

As discussed above, the disclosed system and methods are directed todetecting a numerical text string, or number word within a text stringand converting it into a formatted digit string. The present system andmethods considers various criteria for formatting digit strings. Forexample, the criteria may include the language in which the keyboard iscurrently set (or in which the user is typing), the context in which thenumerical text string is detected, or the formatting of the numericalstring within the text string (i.e., the spacing or other separationbetween number words). The system and methods apply language models inorder to provide predictive digit strings and digit string formatscommonly used as well as to correct typographical errors while the useris entering text. Each of these various embodiments is addressed in thefollowing examples.

In FIG. 4, an example of a screenshot 400 of a message entry screen on atouchscreen of a mobile device, such as a tablet computer or smartphone,is illustrated. A virtual keyboard 408 is typically displayed on oneportion of the display screen, while a text entry field 412 andconversation area 410 is also displayed for the user to view textentries made in the text entry field 412 and prior messages in aconversation (FIG. 4 shows just one of many possible examples).

The virtual keyboard 408 may be a QWERTY keyboard or any other keyboardknown and commonly used in the art. The keyboard presented to the usermay be based on the language in which the user is entering text or inwhich the user manually selects. In the embodiment shown in FIG. 4, ahome row of keys is located across the middle row of the keyboard,includes two identified home keys “F” and “J” which users of physicalkeyboards often use as a starting resting location for their indexfingers. The keys on the virtual keyboard 408 may vary in size dependingon how many keys are displayed on the keyboard and the display size ofthe mobile device on which the keyboard 408 is provided. For example,depending on the display size of the mobile device, more or less keysmay be displayed to the user for text entry. Accordingly, somepunctuation and/or numerical keys may also be present. However, invirtual keyboards 408 as well as numerical keypads on cellulartelephones, the keys are limited such that users may enter text whiletouching numerous keys on the keyboard 408 at once. The keyboard,therefore, include numerous views, which may be accessed via aparticular key on each view.

In the embodiment shown in FIG. 4, the present system and methods onlyrely upon an alphabetical view of the keyboard in order to enter a textmessage that includes a properly formatted digit string. The digitformatting application may receive a text string “Beach? Meet at sevenfifte_” in the text entry field 412 via the contact events detected onthe virtual keyboard 408. The digit formatting application may firstparse the text string for numerical text, e.g., “seven fifte_”404. Inthe embodiment illustrated, the user “Me” is clearly typing a time formeeting another person “JD” at the beach.

Because the user typed the word “seven”, a space, and the word “fifte_”,the system may interpret this as requiring punctuation between the “7”and “15” (as opposed to a space). Accordingly, the system first detectsthe numerical text “seven” and “fifte_” 404 and converts them to digitstrings “7_15”. In this example, the system auto-completes the “fifte_”404 during the conversion process such that the predictive digit stringsreflect the completed digit “15” corresponding to the number word.

In order to determine the proper digit format for the numerical textstring, the system then may analyze the converted digit string based onthe criteria described in the previous paragraphs. For example, the userdigit string prediction module included in the digit formattingapplication may first determine that the language of the text isEnglish. Then, the most commonly used contextual words and phrases maybe compared to those in which the numerical string is included. As shownin FIG. 4, the phrase “Meet at” 402 occurs immediately prior to thenumber words. This phrase may be included in the language model database(in FIG. 2) or in another database associated with the digit formattingapplication which includes words and phrases corresponding to particulardigit formats. For example, within that database the phrase “Meet at”may correspond to a “time format” in “English”.

Utilizing the aforementioned time format, the user input is detected as“7:15”. However, the system may be unable to detect to which time of daythe user “Me” is referring. In some embodiments, the digit formattingapplication may factor in the current time of day in which the textmessage is being entered and automatically choose the closest time tothat as the preferred format. For example, if the user “Me” is textingat 8:00 A with “JD” in FIG. 4, the digit formatting application mayconsider this time and automatically select 7:15 P as the preferredformat for the digit string.

Whatever the case, with more than one possible predictive format, thesystem may generate a list 406 of those possible digit strings for theuser “Me” to select. For example, the system may list the format withthe highest likelihood first, e.g., “7:15 P”, while listing the nextlikeliest digit string of “7:15 A”. In a case where the systemincorrectly analyzed the user's text entry, the system may also provideadditional digit strings in the list 406. For example, “seven fifteen”is also how monetary amounts are expressed in English, so “$7.15” may belisted. The system may also list “715” with no punctuation to provide averbatim numerical-to-digit string conversion.

FIG. 5 illustrates an example of a screenshot 500 of a message entryscreen on a touchscreen of a mobile device is illustrated, similar toFIG. 4. Again, an example of a virtual keyboard 508 is displayed on thelower portion of the touchscreen and a conversation area 510 and textentry field 512 are also provided on an upper portion of thetouchscreen.

Referring to FIG. 5, the user “Me” has entered a first message 514 inwhich the system detects the language of Portuguese. Accordingly, thoughthe user “Me” may have one conversation in English (such as that in FIG.4), once the user “Me” switches to the conversation shown in FIG. 5, thedigit formatting application may automatically switch to Portuguese asthe text entry also switches. This switch causes the language modeldatabase and corresponding text to digit conversion to change as well.For example, the phrase “Meet me” in English would not correspond to a“time format” in Portuguese and, as such, may cause the wrong digitformat to be returned to the user.

The user in FIG. 5 has entered “É a prineri_”, in which “prineri_” 504is indicated as being incorrectly typed via, e.g., an underline (orhighlight or other form known in the art). However, based on the textentry, the system may both autocorrect and autocomplete the text to“primeira”. The text-to-digit conversion module in the digit formattingapplication may then determine that the text is a numerical string of“primeira” indicating an ordinal number (i.e., “first”).

The system then analyzes the context in which the numerical string isdetected. For example, in FIG. 5, the preceding modifier “a” indicatesthe ordinal number is both feminine and singular. So, the system maythen rule out all variations of the digit string for the ordinal number“first”, except one. The converted numerical string may then bepresented for selection by the user or automatically entered in the textstring with “1^(a)”, which is the digit string for “primeira” formattedcorrectly in Portuguese.

In the embodiments illustrated in FIGS. 4-5, the user is able to quicklyenter text, including numbers, without having to switch views of thevirtual keyboard. Additionally, the user is able to compress messagelength by including digit strings rather than numerical text within themessage and take advantage of the autocorrect and autocomplete features,which are unavailable during numeric key entries (e.g., manual digitstring entry on a different view of the keyboard).

Though only two languages are discussed with reference to FIGS. 4-5, itwill be appreciated that various languages and scripts may be detectedand converted from numerical text into digit strings. The system mayautomatically employ digit strings that differ from the native language,e.g. using Latin digits when the user is conversing in Arabic. But basedon cultural norms or standards inferred among the population used forcreating the language model, if the user's language is Tibetan, then thesystem converts Tibetan text into Tibetan digits.

It will be also appreciated that the techniques disclosed hereinassociated with a touchscreen may be equally applicable to other touchinput technologies such as a touch pad or graphics tablet, as well as toother text-input applications and devices.

CONCLUSION

Unless the context clearly requires otherwise, throughout thedescription and the claims, the words “comprise,” “comprising,” and thelike are to be construed in an inclusive sense, as opposed to anexclusive or exhaustive sense; that is to say, in the sense of“including, but not limited to.” Additionally, the words “herein,”“above,” “below,” and words of similar import, when used in thisapplication, refer to this application as a whole and not to anyparticular portions of this application. Where the context permits,words in the above Detailed Description using the singular or pluralnumber may also include the plural or singular number respectively. Theword “or,” in reference to a list of two or more items, covers all ofthe following interpretations of the word: any of the items in the list,all of the items in the list, and any combination of the items in thelist.

The above Detailed Description of examples of the invention is notintended to be exhaustive or to limit the invention to the precise formdisclosed above. While specific examples for the invention are describedabove for illustrative purposes, various equivalent modifications arepossible within the scope of the invention, as those skilled in therelevant art will recognize. For example, while processes or blocks arepresented in a given order, alternative implementations may performroutines having steps, or employ systems having blocks, in a differentorder, and some processes or blocks may be deleted, moved, added,subdivided, combined, and/or modified to provide alternative orsub-combinations. Each of these processes or blocks may be implementedin a variety of different ways. Also, while processes or blocks are attimes shown as being performed in series, these processes or blocks mayinstead be performed or implemented in parallel, or may be performed atdifferent times.

The teachings of the invention provided herein may be applied to othersystems, not necessarily the system described above. The elements andacts of the various examples described above may be combined to providefurther implementations of the invention.

These and other changes may be made to the invention in light of theabove Detailed Description. While the above description describescertain examples of the invention, and describes the best modecontemplated, no matter how detailed the above appears in text, theinvention may be practiced in many ways. Details of the system may varyconsiderably in its specific implementation, while still beingencompassed by the invention disclosed herein. As noted above,particular terminology used when describing certain features or aspectsof the invention should not be taken to imply that the terminology isbeing redefined herein to be restricted to any specific characteristics,features, or aspects of the invention with which that terminology isassociated. In general, the terms used in the following claims shouldnot be construed to limit the invention to the specific examplesdisclosed in the specification, unless the above Detailed Descriptionsection explicitly defines such terms. Accordingly, the actual scope ofthe invention encompasses not only the disclosed examples, but also allequivalent ways of practicing or implementing the invention under theclaims

While certain aspects of the invention are presented below in certainclaim forms, the applicant contemplates the various aspects of theinvention in any number of claim forms. For example, while only oneaspect of the invention is recited as a means-plus-function claim under35 U.S.C. sec. 112(f), other aspects may likewise be embodied as ameans-plus-function claim, or in other forms, such as being embodied ina computer-readable medium. (Any claims intended to be treated under 35U.S.C. §112(f) will begin with the words “means for”, but use of theterm “for” in any other context is not intended to invoke treatmentunder 35 U.S.C. §112(f).) Accordingly, the applicant reserves the rightto add additional claims after filing the application to pursue suchadditional claim forms for other aspects of the invention.

I/We claim:
 1. A method for converting text strings into digit strings,the method comprising: detecting one or more numerical text stringswithin a text string; converting the one or more numerical text stringsinto one or more digit strings; identifying a keyword or keyword phraseproximate to the one or more digit strings within the one or morenumerical text strings; and formatting the one or more digit stringsbased on the identified keyword or keyword phrase.
 2. The method ofclaim 1, further comprising: predicting multiple formats for the one ormore digit strings; and presenting the multiple formats to a user forselection; wherein the multiple formats include: punctuation added to adigit string, a specific spacing between numerals of a digit string, orsymbols added to a digit string.
 3. The method of claim 1, furthercomprising: determining a time of day at which the text string wasreceived from a user via a mobile device of the user; wherein formattingthe one or more digit strings is further based on the determined time ofday.
 4. The method of claim 1, further comprising: determining alanguage associated with the text string; wherein formatting the one ormore digit strings is further based on the determined languageassociated with the text string.
 5. The method of claim 1, furthercomprising: determining a location at which the text string was receivedfrom a user via a mobile device of the user; wherein formatting the oneor more digit strings is further based on the determined location. 6.The method of claim 1, further comprising: automatically replacing thedetected one or more numerical text strings with the formatted one ormore digit strings in real-time or near real-time.
 7. The method ofclaim 1, wherein the text string is input from a user via a virtualkeyboard generated on a touchscreen of a mobile device associated withthe user.
 8. The method of claim 1, wherein the text string is inputfrom a user via a virtual keyboard generated on a touchscreen of amobile device associated with the user, wherein the keyboard is a QWERTYkeyboard which displays multiple views, and wherein alphabetical keysare displayed in a separate view from the numerical keys.
 9. At leastone machine-readable storage medium, excluding a transitory propagatingsignal, and containing a set of instructions, which when executed by oneor more processors, cause the one or more processors to perform amethod, the method comprising: detecting one or more numerical textstrings within a text string; converting the one or more numerical textstrings into one or more digit strings; identifying a keyword or keywordphrase proximate to the one or more digit strings within the one or morenumerical text strings; and formatting the one or more digit stringsbased on the identified keyword or keyword phrase.
 10. Themachine-readable storage medium of claim 9, further comprising:predicting multiple formats for the one or more digit strings; andpresenting the multiple formats to a user for selection; wherein themultiple formats include: punctuation added to a digit string, aspecific spacing between numerals of a digit string, or symbols added toa digit string.
 11. The machine-readable storage medium of claim 9,further comprising: determining a time of day at which the text stringwas received from a user via a mobile device of the user; whereinformatting the one or more digit strings is further based on thedetermined time of day.
 12. The machine-readable storage medium of claim9, further comprising: determining a language associated with the textstring; wherein formatting the one or more digit strings is furtherbased on the determined language associated with the text string. 13.The machine-readable storage medium of claim 9, further comprising:determining a location at which the text string was received from a uservia a mobile device of the user; wherein formatting the one or moredigit strings is further based on the determined location.
 14. Themachine-readable storage medium of claim 9, further comprising:automatically replacing the detected one or more numerical text stringswith the formatted one or more digit strings in real-time or nearreal-time.
 15. The machine-readable storage medium of claim 9, whereinthe text string is input from a user via a virtual keyboard generated ona touchscreen of a mobile device associated with the user.
 16. Themachine-readable storage medium of claim 9, wherein the text string isinput from a user via a virtual keyboard generated on a touchscreen of amobile device associated with the user, wherein the keyboard is a QWERTYkeyboard which displays multiple views, and
 17. A system, comprising: atleast one processor and memory; a text-to-digit convertor configured to:detect a number word within a text string, and convert the detectednumber word into an unformatted digit string; and a digit formattingmodule configured to modify the unformatted digit string into aformatted digit string based on one or more keywords within the textstring.
 18. The system of claim 17, wherein the digit formatting moduleis configured to identify multiple formats for the unformatted digitstring based on one or more keywords adjacent to the number word withinthe text string.
 19. The system of claim 17, wherein the digitformatting module identifies a keyword or a keyword phrase adjacent tothe number word within the text string, wherein the keyword or thekeyword phrase corresponds to a particular format to be applied to theunformatted digit string.
 20. The system of claim 17, wherein thetext-to-digit converter accesses the text string via a messagingapplication of a mobile device, an email application of the mobiledevice, or a keyboard application of the mobile device.